package cn.itcast.tools;

import cn.itcast.dto.PlansDTO;
import org.springframework.ai.tool.annotation.Tool;
import org.springframework.ai.tool.annotation.ToolParam;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @author GY
 * @version V1.0
 * @date 2025-04-20 21:20
 */
@Component
public class DataTools {
    @Tool(description = "根据用户需求查询选择套餐")
    public List<PlansDTO> getPlans(@ToolParam(description = "套餐名称") String name) {
        // 返回信息 : """
        //             套餐名称:经济卡
        //             月租:39元
        //             流量:10GB
        //             通话时长:100分钟
        //             附加服务:无
        //             合约期:无
        //             优惠活动:首月半价
        //
        //             套餐名称:畅享全家享
        //             月租:99元
        //             流量:50GB
        //             通话时长:500分钟
        //             附加服务:200M宽带+2张副卡
        //             合约期:12个月
        //             优惠活动:送视频会员月卡
        //
        //             套餐名称:全球通尊享
        //             月租:199元
        //             流量:不限量
        //             通话时长:2000分钟
        //             附加服务:国际漫游+5G优先
        //             合约期:24个月
        //             优惠活动:机场贵宾厅2次/年
        //
        //             套餐名称:学生青春卡
        //             月租:59元
        //             流量:30GB
        //             通话时长:200分钟
        //             附加服务:校园网加速
        //             合约期:6个月
        //             优惠活动:免流特定APP
        //             """
        return List.of(
                PlansDTO.builder()
                        .name("经济卡")
                        .monthlyRent(39.0)
                        .dataAllowance(10)
                        .callDuration(100)
                        .additionalServices("无")
                        .contractPeriod(0)
                        .promotionalOffers("首月半价")
                        .build(),PlansDTO.builder()
                        .name("畅享全家享")
                        .monthlyRent(99.0)
                        .dataAllowance(50)
                        .callDuration(500)
                        .additionalServices("200M宽带+2张副卡")
                        .contractPeriod(12)
                        .promotionalOffers("送视频会员月卡")
                        .build(),
                PlansDTO.builder()
                        .name("全球通尊享")
                        .monthlyRent(199.0)
                        .dataAllowance(0)
                        .callDuration(2000)
                        .additionalServices("国际漫游+5G优先")
                        .contractPeriod(24)
                        .promotionalOffers("机场贵宾厅2次/年")
                        .build(),
                PlansDTO.builder()
                        .name("学生青春卡")
                        .monthlyRent(59.0)
                        .dataAllowance(30)
                        .callDuration(200)
                        .additionalServices("校园网加速")
                        .contractPeriod(6)
                        .promotionalOffers("免流特定APP")
                        .build()
        );
    }
}
